package com.nkzy.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigInteger;
import java.util.Date;

@Data
@AllArgsConstructor
@NoArgsConstructor
/**
 * User类代表系统中的用户实体
 * 它封装了用户相关的属性和信息，如用户ID、用户名、密码等
 */
public class User {
    /**
     * 用户唯一标识符
     * 使用BigInteger类型以支持大规模用户的扩展需求
     */
    private BigInteger id;

    /**
     * 用户名
     * 必须是唯一的，用于用户登录和身份识别
     */
    private String username;

    /**
     * 用户密码
     * 用于用户登录验证，应加密存储以保证安全性
     */
    private String password;

    /**
     * 用户联系电话
     * 用于账户安全和可能的用户通知服务
     */
    private String phone;

    /**
     * 用户附加信息
     * 可以包含用户的任何额外描述或备注信息
     */
    private String info;

    /**
     * 用户状态
     * 用于表示用户的当前状态（如激活、冻结等），以便于账户管理
     */
    private Integer status;

    /**
     * 用户余额
     * 表示用户账户中的余额，可用于提供服务或商品的支付
     */
    private Integer balance;

    /**
     * 用户创建时间
     * 记录用户账户创建的时间，用于审计和账户管理
     */
    private Date createTime;

    /**
     * 用户更新时间
     * 记录用户账户最后一次更新的时间，用于审计和账户管理
     */
    private Date updateTime;

}
